package us.gaaoc.framework.dao;

import java.util.Date;
import java.util.List;

import us.gaaoc.framework.model.Person;

public interface PersonDAO extends GenericDAO<Person, String>{

	public abstract Person login(String username, String password);
	public abstract Person getPersonByUserName(String userName);
	public abstract List<Person> getNonDeletedPerson();
	/* Commented By: Ramu (eppakayr)
	 * public abstract List<Person> getNonDeletedPersonWithNonNullUserId();
	 * */
	public abstract List<Person> getNonDeletedPersonWithNonNullUserId(String courtUuid);
	public abstract void updatePersonForDeletedFlag(String uuid, byte isDeleted);
			
	// Added by Angela for GAJE_DataModel project
	public abstract Person findByPersonName(String first, String middle, String last);
	/**
	 * @param name
	 * @return
	 */
	public abstract Person findPersonByUuid (String uuid);
	/**
	 * @param person
	 */
	public abstract void deletePerson(Person person);
	public abstract List<Person> findPersonListByNameAndByDOB(String firstName, String middleName, String lastName, Date dateOfBirth);
     
	//added by Bhawana
	//person Statistics
	public abstract int countChildren();
    public abstract int countDefendents();	

}